﻿using System;
using System.Collections;

namespace Progream18
{
    class Program
    {
        static void Main(string[] args)
        {
            //冒泡排序
            //int[] nums = { 1, 4, 5, 3, 7, 6, 9, 12, 20, 22 };

            //随机生成10000个元素的数组
            int[] nums = new int[100];
            Random rnd = new Random();
            ArrayList arr = new ArrayList();
            
             while(arr.Count<100)
            {
                int tempNum = rnd.Next(1, 1000);
                if (!arr.Contains(tempNum))
                {
                    arr.Add(tempNum);
                }
            }
            //for(var i=0;i<nums.Length;i++)
            //{
            //    nums[i] = rnd.Next(1, 10000);
            //}
            for (var i = 0; i < nums.Length; i++)
            {
                nums[i] = (int)arr[i];
                Console.Write(nums[i] + " ");

            }
               
            Console.WriteLine();
            Console.WriteLine("排序后....");
            //C#类库，队列的排序方法
            //Array.Sort(nums);//小到大
            //Array.Reverse(nums);//大到小

            //冒泡排序
            //从第1个元素遍历到倒数第二个元素
            //for (var i = 0; i < nums.Length - 1; i++)
            //{
            //    for (var j = 0; j < nums.Length - i - 1; j++)
            //    {
            //        if (nums[j] > nums[j + 1])
            //        {
            //            //如果当前元素大于后续元素，它们进行交换
            //            var tmp = nums[j];
            //            nums[j] = nums[j + 1];
            //            nums[j + 1] = tmp;
            //        }
            //    }
            //}

            //选择排序
            int minIndex;
            for (var i = 0; i < nums.Length - 1; i++)
            {
                minIndex = i;
                //查询余下数组中最小值的下标，存放到minIndex
                for (var j = i + 1; j < nums.Length; j++)
                {
                    if (nums[j] < nums[minIndex])
                    {
                        minIndex = j;
                    }
                }
                var tmp = nums[i];
                nums[i] = nums[minIndex];
                nums[minIndex] = tmp;
            }

            for (var i = 0; i < nums.Length; i++)
                Console.Write(nums[i] + " ");

            Console.WriteLine();
        }
    }
}
